
public class Interview_001 {

    /**
     * ①数组第一题
     * 1.题目:
     * 在一个二维数组中（每个一维数组的长度相同），每一行都按照从左到右递增的顺序排序，每一列都按照从
     * 上到下递增的顺序排序。请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数
     *
     * 2.示例:
     * 1    2   3   4   5   6
     * 7    8   9  10  11  12
     *
     * 3.考点:
     * 二分查找的非递归方式
     */
    public boolean Find(int target, int[][] array) {
        for (int i = 0; i < array.length; i++) {
            int low = 0;
            int high = array[i].length - 1;
            int mid;
            while (low <= high) {
                mid = (low + high) / 2;
                if (array[i][mid] == target) {
                    return true;
                } else if (array[i][mid] < target) {
                    low = mid + 1;
                } else {
                    high = mid - 1;
                }
            }
        }
        return false;
    }
}
